/**
 * 判断是否为文档文件
 * @param {Object} file 文件对象
 * @returns {boolean} 是否为文档文件
 */
export const isDocumentFile = (file) => {
  const extension = file.name.split('.').pop().toLowerCase();
  
  // 扩展支持的文档类型
  const documentExtensions = [
    'pdf', 'docx', 'doc', 'md', 'markdown', 
    'html', 'htm', 'txt', 'text', 'log', 
    'json', 'xml', 'csv', 'rtf', 'ppt', 'pptx',
    'xls', 'xlsx'
  ];
  
  return documentExtensions.includes(extension) || 
         ['document', 'markdown', 'text', 'html', 'presentation', 'spreadsheet'].includes(file.type);
};

/**
 * 是否为Office文档（Word、Excel、PPT）
 * @param {Object} file 文件对象
 * @returns {boolean} 是否为Office文档
 */
export const isOfficeDocument = (file) => {
  const extension = file.name.split('.').pop().toLowerCase();
  return ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx'].includes(extension) ||
         ['word', 'excel', 'presentation', 'spreadsheet'].includes(file.type);
};

/**
 * 获取文档类型
 * @param {Object} file 文件对象
 * @returns {string} 文档类型
 */
export const getDocumentType = (file) => {
  // 首先检查文件的类型属性
  if (file.type === 'markdown' || file.type === 'md') {
    return 'markdown';
  } else if (file.type === 'html') {
    return 'html';
  } else if (file.type === 'presentation' || file.type === 'powerpoint') {
    return 'presentation';
  } else if (file.type === 'spreadsheet' || file.type === 'excel') {
    return 'spreadsheet';
  } else if (file.type === 'pdf') {
    return 'pdf';
  } else if (file.type === 'word') {
    return 'word';
  }
  
  // 如果文件类型不明确，通过扩展名判断
  const extension = file.name.split('.').pop().toLowerCase();
  
  // 根据扩展名判断
  if (['md', 'markdown'].includes(extension)) {
    return 'markdown';
  } else if (['html', 'htm'].includes(extension)) {
    return 'html';
  } else if (['ppt', 'pptx'].includes(extension)) {
    return 'presentation';
  } else if (['xls', 'xlsx'].includes(extension)) {
    return 'spreadsheet';
  } else if (extension === 'pdf') {
    return 'pdf';
  } else if (['doc', 'docx'].includes(extension)) {
    return 'word';
  } else if (['txt', 'text', 'log', 'json', 'xml', 'csv'].includes(extension)) {
    return 'text';
  }
  
  // 如果是document类型但没有具体扩展名，尝试进一步判断
  if (file.type === 'document') {
    // 根据文件名判断类型
    if (file.name.toLowerCase().endsWith('.pdf')) {
      return 'pdf';
    } else if (file.name.toLowerCase().endsWith('.doc') || file.name.toLowerCase().endsWith('.docx')) {
      return 'word';
    } else if (file.name.toLowerCase().endsWith('.ppt') || file.name.toLowerCase().endsWith('.pptx')) {
      return 'presentation';
    } else if (file.name.toLowerCase().endsWith('.xls') || file.name.toLowerCase().endsWith('.xlsx')) {
      return 'spreadsheet';
    }
  }
  
  // 默认返回自动类型
  return 'auto';
};

/**
 * 获取文件类型标签
 * @param {string} type 文件类型
 * @returns {string} 文件类型的中文标签
 */
export const getFileTypeLabel = (type) => {
  const typeMap = {
    'directory': '文件夹',
    'document': '文档',
    'markdown': 'Markdown',
    'image': '图片',
    'video': '视频',
    'audio': '音频',
    'archive': '压缩包',
    'pdf': 'PDF',
    'word': 'Word文档',
    'presentation': 'PPT演示文稿',
    'spreadsheet': '电子表格',
    'other': '其他'
  };
  
  return typeMap[type] || '未知';
}; 